new Vue({
    el:"#app",
    data(){
        return {
            cart:[],
            goodsDetail:{},
            cartId:[],
            total:0,
            goodsMainImg:{},
            login:true,
            loginUser:{},
            address:{},     //当前使用地址
            addressData:{},     //该用户所有地址
            addressInput:false,     //自己手动输入地址
            dialogTableVisible: false,
            selectAddress:{},       //选择的收货地址id
        }


    },
    methods:{
        //t通过cartID查询单个购物连接
        findCartById:function () {
            axios.get(`/cart/findById.do?id=${this.cartId}`).then(response=>{
                this.cart=response.data;
                // console.log("购物车内容："+this.cart);
                this.findGoodsbyId();
            }).catch(function (error) {
                console.log(error);
            });
        },
        //t查询商品信息
        findGoodsbyId:function () {
            axios.get(`/goodsDetails/findById.do?id=${this.cart.goodsId}`).then(response=>{
                this.goodsDetail=response.data;
                //console.log(this.goodsDetail);
                this.findGoodMainImg(this.goodsDetail.id);
            }).catch(function (error) {
                console.log(error);
            });
        },
        //t查询商品主图
        findGoodMainImg:function (id) {
            axios.get(`/mainImg/findById.do?id=${id}`).then(response=>{
                this.goodsMainImg=response.data;
                //console.log(this.goodsMainImg);
            }).catch(function (error) {
                console.log(error);
            });
        },
        //t查询登录用户
        findLoginUser:function () {
            let userId=sessionStorage.getItem("userId");
            if (userId==""||userId==null){
                console.log("nologin");
                this.login=false;
            }else{
                this.login=true;
                //查询用户具体信息
                axios.get(`/user/findById.do?id=${userId}`).then(response=>{
                    this.loginUser=response.data;
                    this.findAddress(); //查询默认收货地址
                }).catch(function (error) {
                    console.log(error);
                });
            }
        },
        //t退出登录
        logout:function () {
            sessionStorage.clear();
            this.login=false;
            this.loginUser={};
            window.location.href="/pages/login.html";
        },
        //t输入新地址
        newAdd:function () {
            this.addressInput = true;  //显示输入框
            this.dialogTableVisible = false;
        },
        /**
         * t修改收货地址
         * 根据selectaddress的值进行修改
         * 将地址的地址值赋值给address即可
         */
        changeAdd:function () {
            this.address=this.selectaddress;    //赋值用户选择的地址
            console.log("修改了地址："+this.address.id);  //Cannot read property 'id' of undefined"
            this.dialogTableVisible = false;
        },
        /**
         * t查询默认收货地址
         * 每个用户创建的第一个地址都会是默认地址。只会有该用户没有添加地址、或者存在默认地址的情况
         * 若用户没有添加地址，则将addressInput设置为true，让用户自己输入地址。
         */
        findAddress:function () {
            axios.post(`/address/findList.do`,{userId:this.loginUser.id,isDefault:1}).then(response=>{
                if (response.data.length!=0){       //存在默认地址
                    this.addressInput=false;
                    this.address=response.data[0];     //存储默认地址为当前显示地址
                }
                else{
                    this.addressInput=true; //让用户手动输入地址
                }
            }).catch(function (error) {
                console.log(error);
            });
        },
        //t查询该用户的所有收货地址
        findAddressData:function () {
            if(this.addressData.length>0){
                this.dialogTableVisible = true;
                return;
            }else{
                axios.post(`/address/findList.do`,{userId:this.loginUser.id}).then(response=>{
                    this.addressData=response.data;
                    //console.log("所有收货地址：");
                    //console.log(this.addressData);
                    this.dialogTableVisible = true;     //查询完毕才显示对话框
                }).catch(function (error) {
                    console.log(error);
                });
            }

        },
        //t初始化
        InitData:function () {
            this.findLoginUser();   //查询登录用户
            this.cartId=sessionStorage.getItem("cartId");   //目前只是单个。==============可能是list集合
            console.log("商品id："+this.cartId);
            this.findCartById();
        },
        //elementui自带方法
        setCurrent(row) {       //设置当前选择的行
            this.$refs.singleTable.setCurrentRow(row);
        },
        //t
        handleCurrentChange(val) {      //修改行的时候执行的方法
            this.currentRow = val;
            if(val===undefined){        //取消选择行
                this.selectaddress={};  //当前选择为空
            }else{
                this.selectaddress=val;      //将收货地址id存储起来
                //console.log("当前选择地址："+this.selectaddress.id);
            }
        }
        //根据color，size查询价格。==========================================
    },
    created() {
        this.InitData();
    }
});